﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace QLKS
{
    public partial class QLLP : Form
    {
        public f_Login flogin = new f_Login();
        public Dictionary<string, string> GetPassFromUser;
        public Mysql qmysql = new Mysql();
        public QLLP()
        {
            InitializeComponent();
        }

        private void QLLP_Load(object sender, EventArgs e)
        {
            //Getdata from database.
            string cmdText = "SELECT MaLP as `Mã Loại Phòng`, TenLP as `Tên Loại Phòng`, Mota as `Mô tả`, Giagio as `Giá giờ`, Giangay as `Giá ngày` FROM ht_loaiphong";
            Dictionary<string, string> Params = new Dictionary<string, string>();
            DataTable GetAllLoaiphong = qmysql.SelectReaderSqlCommandDatatable(cmdText, Params);
            grv_loaiphong.DataSource = GetAllLoaiphong;
        }

        private void grv_loaiphong_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            tx_malp.Text = grv_loaiphong.Rows[e.RowIndex].Cells["Mã Loại Phòng"].Value.ToString();
            tx_tenlp.Text = grv_loaiphong.Rows[e.RowIndex].Cells["Tên Loại Phòng"].Value.ToString();
            tx_mota.Text = grv_loaiphong.Rows[e.RowIndex].Cells["Mô tả"].Value.ToString();
            tx_giagio.Text = grv_loaiphong.Rows[e.RowIndex].Cells["Giá giờ"].Value.ToString();
            tx_giangay.Text = grv_loaiphong.Rows[e.RowIndex].Cells["Giá ngày"].Value.ToString();
        }

        public string LocChuoi(string strText)
        {
            return Regex.Replace(strText.Trim(), @"\W\s+", "");
        }

        public void ResetAllForm(){
            tx_malp.Text = "";
            tx_tenlp.Text = "";
            tx_mota.Text = "";
            tx_giagio.Text = "";
            tx_giangay.Text = "";
        }

        private void bt_themlp_Click(object sender, EventArgs e)
        {
            int error = 0;
            if (error == 0 && (tx_tenlp.Text == "" || tx_mota.Text == "" || tx_giagio.Text == "" || tx_giangay.Text == ""))
            {
                MessageBox.Show("Không để trống thông tin trong các mục có dấu *", "Thông Báo");
                error = 1;
            }

            //get data
            string tmp_tenlp = LocChuoi(tx_tenlp.Text);
            string tmp_mota = tx_mota.Text;
            string tmp_giagio = LocChuoi(tx_giagio.Text);
            string tmp_giangay = LocChuoi(tx_giangay.Text);

            if (error == 0)
            {
                //Getdata from database.
                string cmdTextCdta = "SELECT * FROM ht_loaiphong WHERE TenLP=?tenlp LIMIT 0,1";
                Dictionary<string, string> Params = new Dictionary<string, string>();
                Params["tenlp"] = tmp_tenlp;
                Dictionary<string, string> GetInfoFromUser = qmysql.SelectReaderSqlCommand(cmdTextCdta, Params);
                if (GetInfoFromUser.Count > 0)
                {
                    MessageBox.Show("Loại phòng này đã có trong hệ thống", "Thông Báo");
                    error = 1;
                }
            }

            //add data
            if (error == 0)
            {
                string cmdTextIsnv = "INSERT INTO ht_loaiphong(TenLP,Mota,Giagio,Giangay) VALUES(?tenlp,?mota,?giagio,?giangay)";
                Dictionary<string, string> Params_isnv = new Dictionary<string, string>();
                Params_isnv["tenlp"] = tmp_tenlp;
                Params_isnv["mota"] = tmp_mota;
                Params_isnv["giagio"] = tmp_giagio;
                Params_isnv["giangay"] = tmp_giangay;
                this.qmysql.NonQueryMysqlCommand(cmdTextIsnv, Params_isnv);
                MessageBox.Show("Đã thêm loại phòng thành công", "Thông Báo");
                //reload data
                //Getdata from database.
                string cmdText = "SELECT MaLP as `Mã Loại Phòng`, TenLP as `Tên Loại Phòng`, Mota as `Mô tả`, Giagio as `Giá giờ`, Giangay as `Giá ngày` FROM ht_loaiphong";
                Dictionary<string, string> Params = new Dictionary<string, string>();
                DataTable GetAllLoaiphong = qmysql.SelectReaderSqlCommandDatatable(cmdText, Params);
                grv_loaiphong.DataSource = GetAllLoaiphong;
                grv_loaiphong.Refresh();
                //set field
                ResetAllForm();
                
            }
        }

        private void bt_sualp_Click(object sender, EventArgs e)
        {
            int error = 0;
            if (error == 0 && (tx_malp.Text == "" || tx_tenlp.Text == "" || tx_mota.Text == "" || tx_giagio.Text == "" || tx_giangay.Text == ""))
            {
                MessageBox.Show("Không để trống thông tin trong các mục có dấu *", "Thông Báo");
                error = 1;
            }

            //get data
            string tmp_malp = tx_malp.Text;
            string tmp_tenlp = LocChuoi(tx_tenlp.Text);
            string tmp_mota = tx_mota.Text;
            string tmp_giagio = LocChuoi(tx_giagio.Text);
            string tmp_giangay = LocChuoi(tx_giangay.Text);

            if (error == 0)
            {
                //Getdata from database.
                string cmdTextCdta = "SELECT * FROM ht_loaiphong WHERE TenLP=?tenlp LIMIT 0,1";
                Dictionary<string, string> Params = new Dictionary<string, string>();
                Params["tenlp"] = tmp_tenlp;
                Dictionary<string, string> GetInfoFromUser = qmysql.SelectReaderSqlCommand(cmdTextCdta, Params);
                if (GetInfoFromUser.Count > 10)
                {
                    MessageBox.Show("Loại phòng này đã có trong hệ thống", "Thông Báo");
                    error = 1;
                }
            }

            //add data
            if (error == 0)
            {
                string cmdTextIsnv = "UPDATE ht_loaiphong SET TenLP=?tenlp,Mota=?mota,Giagio=?giagio,Giangay=?giangay WHERE MaLP=?malp";
                Dictionary<string, string> Params_isnv = new Dictionary<string, string>();
                Params_isnv["tenlp"] = tmp_tenlp;
                Params_isnv["mota"] = tmp_mota;
                Params_isnv["giagio"] = tmp_giagio;
                Params_isnv["giangay"] = tmp_giangay;
                Params_isnv["malp"] = tmp_malp;
                this.qmysql.NonQueryMysqlCommand(cmdTextIsnv, Params_isnv);
                MessageBox.Show("Đã sửa loại phòng thành công", "Thông Báo");
                //reload data
                //Getdata from database.
                string cmdText = "SELECT MaLP as `Mã Loại Phòng`, TenLP as `Tên Loại Phòng`, Mota as `Mô tả`, Giagio as `Giá giờ`, Giangay as `Giá ngày` FROM ht_loaiphong";
                Dictionary<string, string> Params = new Dictionary<string, string>();
                DataTable GetAllLoaiphong = qmysql.SelectReaderSqlCommandDatatable(cmdText, Params);
                grv_loaiphong.DataSource = GetAllLoaiphong;
                grv_loaiphong.Refresh();
                //set field
                ResetAllForm();
            }
        }

        private void bt_xoalp_Click(object sender, EventArgs e)
        {
            int error = 0;
            if (error == 0 && tx_malp.Text == "")
            {
                MessageBox.Show("Không nhận diện được thông tin để xóa loại phòng", "Thông Báo");
                error = 1;
            }

            if (error == 0)
            {
                DialogResult plv = MessageBox.Show("Bạn có chắc chắn thực hiện thao tác này không ?", "Xóa Loại Phòng", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (plv.ToString() == "No")
                {
                    error = 1;
                }
            }

            //get data
            string tmp_manv = tx_malp.Text;

            //add data
            if (error == 0)
            {
                string cmdTextIsnv = "DELETE FROM ht_loaiphong WHERE MaLP=?malp";
                Dictionary<string, string> Params_isnv = new Dictionary<string, string>();
                Params_isnv["malp"] = tmp_manv;
                this.qmysql.NonQueryMysqlCommand(cmdTextIsnv, Params_isnv);
                MessageBox.Show("Đã xóa loại phòng thành công", "Thông Báo");
                //reload data
                //Getdata from database.
                string cmdText = "SELECT MaLP as `Mã Loại Phòng`, TenLP as `Tên Loại Phòng`, Mota as `Mô tả`, Giagio as `Giá giờ`, Giangay as `Giá ngày` FROM ht_loaiphong";
                Dictionary<string, string> Params = new Dictionary<string, string>();
                DataTable GetAllLoaiphong = qmysql.SelectReaderSqlCommandDatatable(cmdText, Params);
                grv_loaiphong.DataSource = GetAllLoaiphong;
                grv_loaiphong.Refresh();
                //set field
                ResetAllForm();
            }
        }
    }
}
